Skip to content

Conversation

@daniel-lxs
Copy link
Member

@daniel-lxs daniel-lxs commented Dec 19, 2025

Summary

Fixes the Requesty provider missing tool selector issue (ROO-235).

Root Cause

  1. The Requesty fetcher wasn't setting supportsNativeTools and defaultToolProtocol in the model info
  2. Users with cached model data wouldn't have these fields even after the fetcher was fixed

Solution

  1. Backend Fix - Fetcher - Added supportsNativeTools: true and defaultToolProtocol: "native" to the Requesty model fetcher so new fetches include these fields

  2. Backend Fix - Provider - In RequestyHandler.getModel(), merge native tool defaults before the cached model info so that cached models without these fields get the defaults applied

  3. Frontend Fix - In useSelectedModel.ts, applied the same pattern as litellm: merge native tool defaults for UI display consistency

  4. Applied the same fix to the unbound provider for consistency

Changes

  • src/api/providers/fetchers/requesty.ts - Added supportsNativeTools and defaultToolProtocol fields
  • src/api/providers/requesty.ts - Merged native tool defaults in getModel() for cached models
  • webview-ui/src/components/ui/hooks/useSelectedModel.ts - Merged native tool defaults for requesty and unbound providers

Testing

  • All existing tests pass
  • TypeScript compiles with no errors

Fixes ROO-235


Important

Fixes Requesty provider tool selector issue by ensuring native tool support is set and cached models are updated, with similar fixes for Unbound provider.

  • Backend Fix - Fetcher:
    • In requesty.ts, added supportsNativeTools: true and defaultToolProtocol: "native" to model info.
  • Backend Fix - Provider:
    • In RequestyHandler.getModel(), merged NATIVE_TOOL_DEFAULTS with cached model info.
    • In router-provider.ts, applied the same merge for cached models.
  • Frontend Fix:
    • In useSelectedModel.ts, merged NATIVE_TOOL_DEFAULTS for Requesty and Unbound providers.

This description was created by Ellipsis for 660365e. You can customize this summary. It will automatically update as commits are pushed.

@dosubot dosubot bot added size:S This PR changes 10-29 lines, ignoring generated files. bug Something isn't working labels Dec 19, 2025
@roomote
Copy link
Contributor

roomote bot commented Dec 19, 2025

Rooviewer Clock   See task on Roo Cloud

Review complete. No issues found.

This PR properly fixes the Requesty provider tool selector issue by:

  • Extracting NATIVE_TOOL_DEFAULTS to a shared constant in packages/types/src/tool.ts
  • Applying native tool defaults in the backend handlers (RequestyHandler, RouterProvider) for cached models
  • Adding the frontend fix in useSelectedModel.ts for UI consistency
  • Extending native tools support to LM Studio and Qwen Code providers
  • Adding Vertex AI 1M context beta support with proper tier pricing
Previous reviews

Mention @roomote in a comment to request specific changes to this pull request or fix all unresolved issues.

@hannesrudolph hannesrudolph added the Issue/PR - Triage New issue. Needs quick review to confirm validity and assign labels. label Dec 19, 2025
@dosubot dosubot bot added size:M This PR changes 30-99 lines, ignoring generated files. and removed size:S This PR changes 10-29 lines, ignoring generated files. labels Dec 19, 2025
@daniel-lxs daniel-lxs moved this from Triage to PR [Needs Review] in Roo Code Roadmap Dec 19, 2025
@hannesrudolph hannesrudolph added PR - Needs Review and removed Issue/PR - Triage New issue. Needs quick review to confirm validity and assign labels. labels Dec 19, 2025
- Add supportsNativeTools and defaultToolProtocol to Requesty model fetcher
- Merge native tool defaults in RequestyHandler.getModel() for cached models
- Apply same defaults merge in useSelectedModel for UI consistency
- Also applied to Unbound provider for consistency

The issue was that cached model data lacked the supportsNativeTools field,
causing resolveToolProtocol() to return XML instead of native protocol.
- Add NATIVE_TOOL_DEFAULTS constant to @roo-code/types/tool.ts
- Update RouterProvider.getModel() to merge defaults for all router providers (LiteLLM, Unbound)
- Update RequestyHandler to use shared constant
- Update useSelectedModel to use shared constant for requesty, unbound, litellm
@daniel-lxs daniel-lxs force-pushed the dan/ROO-235-requesty-native-tools-fix branch from 194bdac to 660365e Compare December 19, 2025 20:21
@dosubot dosubot bot added the lgtm This PR has been approved by a maintainer label Dec 19, 2025
@cte cte merged commit bade932 into main Dec 19, 2025
13 checks passed
@github-project-automation github-project-automation bot moved this from PR [Needs Review] to Done in Roo Code Roadmap Dec 19, 2025
@cte cte deleted the dan/ROO-235-requesty-native-tools-fix branch December 19, 2025 20:28
@github-project-automation github-project-automation bot moved this from New to Done in Roo Code Roadmap Dec 19, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working lgtm This PR has been approved by a maintainer PR - Needs Review size:M This PR changes 30-99 lines, ignoring generated files.

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

4 participants